**Состояние перевода:** На этой странице представлен перевод статьи [Firefox on RAM](/index.php/Firefox_on_RAM "Firefox on RAM"). Дата последней синхронизации: 25 марта 2016\. Вы можете [помочь](/index.php/ArchWiki_Translation_Team_(%D0%A0%D1%83%D1%81%D1%81%D0%BA%D0%B8%D0%B9) "ArchWiki Translation Team (Русский)") синхронизировать перевод, если в английской версии произошли [изменения](https://wiki.archlinux.org/index.php?title=Firefox_on_RAM&diff=0&oldid=427726).

Предположим, что есть свободная память, тогда поместив кэш или полный профиль [Firefox](/index.php/Firefox_(%D0%A0%D1%83%D1%81%D1%81%D0%BA%D0%B8%D0%B9) "Firefox (Русский)") в оперативную память, мы получим значительные приемущества. Несмотря на то что выберите, частичный перенос является улучшением сам по себе, а последний может сделать Firefox ещё более отзывчивым, по сравнению со стандартной конфигурацией. Полученные приемущества:

*   уменьшение дисковых операций чтения/записи;
*   повышенная отзывчивость;
*   многие операции в Firefox, такие как быстрый поиск и история запросов, происходят почти мгновенно.

Для этого мы можем использовать свойства [tmpfs](/index.php/Tmpfs_(%D0%A0%D1%83%D1%81%D1%81%D0%BA%D0%B8%D0%B9) "Tmpfs (Русский)").

Поскольку данные, помещённые в оперативную память, не сохраняются после выключения компьютера, нам понадобится сценарий, отвечающий за синхронизацию с диском перед завершением работы системы, если желательно сохранить данные (что, скорее всего, актуально в случае перемещения профиля). С другой стороны, перемещение только кэша является быстрым, менее полным решением, которое немного ускорит работу, но кэш Firefox при каждой перезагрузке будет очищен.

**Примечание:** Кэш хранится **отдельно** от профиля Firefox, в каталоге по умолчанию (`/home/$USER/.mozilla/firefox/`): профиль находится по умолчанию в `/home/$USER/.cache/mozilla/firefox/<profile>`. Это также относится и к Chromium и к другим браузерам. Поэтому разделы [#Утилиты для размещения профиля в RAM](#.D0.A3.D1.82.D0.B8.D0.BB.D0.B8.D1.82.D1.8B_.D0.B4.D0.BB.D1.8F_.D1.80.D0.B0.D0.B7.D0.BC.D0.B5.D1.89.D0.B5.D0.BD.D0.B8.D1.8F_.D0.BF.D1.80.D0.BE.D1.84.D0.B8.D0.BB.D1.8F_.D0.B2_RAM) и [#Поместите профиль в RAM вручную](#.D0.9F.D0.BE.D0.BC.D0.B5.D1.81.D1.82.D0.B8.D1.82.D0.B5_.D0.BF.D1.80.D0.BE.D1.84.D0.B8.D0.BB.D1.8C_.D0.B2_RAM_.D0.B2.D1.80.D1.83.D1.87.D0.BD.D1.83.D1.8E) **не имеют дело** с перемещением кэша и синхронизацией, только с настройками профиля. Для большей информации смотрите [Преимущества psd](/index.php/Profile-sync-daemon_(%D0%A0%D1%83%D1%81%D1%81%D0%BA%D0%B8%D0%B9)#.D0.9F.D1.80.D0.B5.D0.B8.D0.BC.D1.83.D1.89.D0.B5.D1.81.D1.82.D0.B2.D0.B0_psd "Profile-sync-daemon (Русский)"). [Anything-sync-daemon](/index.php/Anything-sync-daemon "Anything-sync-daemon") может быть использован также как 2 Вариант для каталогов кэша.

## Contents

*   [1 Переместить только кэш в Оперативную память](#.D0.9F.D0.B5.D1.80.D0.B5.D0.BC.D0.B5.D1.81.D1.82.D0.B8.D1.82.D1.8C_.D1.82.D0.BE.D0.BB.D1.8C.D0.BA.D0.BE_.D0.BA.D1.8D.D1.88_.D0.B2_.D0.9E.D0.BF.D0.B5.D1.80.D0.B0.D1.82.D0.B8.D0.B2.D0.BD.D1.83.D1.8E_.D0.BF.D0.B0.D0.BC.D1.8F.D1.82.D1.8C)
*   [2 Утилиты для размещения профиля в RAM](#.D0.A3.D1.82.D0.B8.D0.BB.D0.B8.D1.82.D1.8B_.D0.B4.D0.BB.D1.8F_.D1.80.D0.B0.D0.B7.D0.BC.D0.B5.D1.89.D0.B5.D0.BD.D0.B8.D1.8F_.D0.BF.D1.80.D0.BE.D1.84.D0.B8.D0.BB.D1.8F_.D0.B2_RAM)
*   [3 Поместите профиль в RAM вручную](#.D0.9F.D0.BE.D0.BC.D0.B5.D1.81.D1.82.D0.B8.D1.82.D0.B5_.D0.BF.D1.80.D0.BE.D1.84.D0.B8.D0.BB.D1.8C_.D0.B2_RAM_.D0.B2.D1.80.D1.83.D1.87.D0.BD.D1.83.D1.8E)
    *   [3.1 Прежде чем начать](#.D0.9F.D1.80.D0.B5.D0.B6.D0.B4.D0.B5_.D1.87.D0.B5.D0.BC_.D0.BD.D0.B0.D1.87.D0.B0.D1.82.D1.8C)
    *   [3.2 Скрипт](#.D0.A1.D0.BA.D1.80.D0.B8.D0.BF.D1.82)
    *   [3.3 Автоматизация](#.D0.90.D0.B2.D1.82.D0.BE.D0.BC.D0.B0.D1.82.D0.B8.D0.B7.D0.B0.D1.86.D0.B8.D1.8F)
        *   [3.3.1 Задание cron](#.D0.97.D0.B0.D0.B4.D0.B0.D0.BD.D0.B8.D0.B5_cron)
        *   [3.3.2 Синхронизация при входе/выходе](#.D0.A1.D0.B8.D0.BD.D1.85.D1.80.D0.BE.D0.BD.D0.B8.D0.B7.D0.B0.D1.86.D0.B8.D1.8F_.D0.BF.D1.80.D0.B8_.D0.B2.D1.85.D0.BE.D0.B4.D0.B5.2F.D0.B2.D1.8B.D1.85.D0.BE.D0.B4.D0.B5)
*   [4 Смотрите также](#.D0.A1.D0.BC.D0.BE.D1.82.D1.80.D0.B8.D1.82.D0.B5_.D1.82.D0.B0.D0.BA.D0.B6.D0.B5)

## Переместить только кэш в Оперативную память

Когда загружаются страницы, они могут быть помещены в кэше, так что их не нужно загружать для повторного отображения. Также кэшируется электронная почта и новости, сообщения и вложения. Firefox может быть настроен на использование в качестве кэш-памяти только оперативной памяти. Файлы настроек, закладки, расширения и т.д. будут записаны на диск, как обычно. Для этого:

*   откройте в адреснойстроке `about:config`
*   установите `browser.cache.disk.enable` на "false" (двойным щелчком по строке)
*   проверьте что значение `browser.cache.memory.enable` установлено в "true" ([значение по умолчанию](http://kb.mozillazine.org/Browser.cache.memory.enable))
*   добавьте запись (щелчёк правой кнопкой мышки->Создать->Целое) `browser.cache.memory.capacity` и установите размер в KB который вы хотите запасти, или в -1 для [автоматического](http://kb.mozillazine.org/Browser.cache.memory.capacity#-1) определения размера кэша. (Пропуск этого шага имеет тот же эффект, что и установка в значение -1.)

Основными недостатками этого метода является то, что содержание недавно просмотренных веб-страниц потеряется, если работа браузера завершена аварийно, либо после перезагрузки, и что параметры должны быть настроены для каждого пользователя индивидуально.

Избежание первого недостатка заключается в том, чтобы использовать [демон всеобщей синхронизации](/index.php/Anything-sync-daemon "Anything-sync-daemon") или аналогичный периодический скрипт синхронизации, так что кэш будет копироваться на диск регулярно.

## Утилиты для размещения профиля в RAM

Перенесите профиль браузера в [tmpfs](/index.php/Tmpfs_(%D0%A0%D1%83%D1%81%D1%81%D0%BA%D0%B8%D0%B9) "Tmpfs (Русский)") для глобального улучшения отклика браузера. Ещё одним приемуществом является снижение операций ввода/вывода, из которых [накопители SSD извлекут максимум выгоды](/index.php/Solid_State_Drives_(%D0%A0%D1%83%D1%81%D1%81%D0%BA%D0%B8%D0%B9)#.D0.A0.D0.B0.D1.81.D0.BF.D0.BE.D0.BB.D0.BE.D0.B6.D0.B8.D1.82.D0.B5_.D1.87.D0.B0.D1.81.D1.82.D0.BE_.D0.B8.D1.81.D0.BF.D0.BE.D0.BB.D1.8C.D0.B7.D1.83.D0.B5.D0.BC.D1.8B.D0.B5_.D1.84.D0.B0.D0.B9.D0.BB.D1.8B_.D0.B2_.D0.BE.D0.BF.D0.B5.D1.80.D0.B0.D1.82.D0.B8.D0.B2.D0.BD.D0.BE.D0.B9_.D0.BF.D0.B0.D0.BC.D1.8F.D1.82.D0.B8 "Solid State Drives (Русский)").

Используйте активные скрипты управления для максимальной надёжности и простоты использования. Некоторые доступны в AUR.

*   [profile-sync-daemon](https://aur.archlinux.org/packages/profile-sync-daemon/) - для получения дополнительной информации обратитесь к статье wiki [Profile-sync-daemon](/index.php/Profile-sync-daemon_(%D0%A0%D1%83%D1%81%D1%81%D0%BA%D0%B8%D0%B9) "Profile-sync-daemon (Русский)");
*   [firefox-sync](https://aur.archlinux.org/packages/firefox-sync/)

## Поместите профиль в RAM вручную

### Прежде чем начать

Перед потенциальным риском профиля Firefox, сделайте резервную копию для быстрого восстановления. Замените `xyz.default` на название вашего профиля и используйте `tar` для создания резервной копии:

```
$ tar zcvfp ~/firefox_profile_backup.tar.gz ~/.mozilla/firefox/*xyz.default*

```

### Скрипт

<small>*Адаптирован из [verot.net Ускорение Firefox с помощью tmpfs](http://www.verot.net/firefox_tmpfs.htm)*</small>

Скрипт сначала переместит профиль Firefox на новое статическое место, создаст подкаталог в `/dev/shm`, и мягкую ссылку, а затем заполнит его содержимым профиля. Замените выделенную секцию. Единственное значение которое необходимо изменить, опять же `xyz.default`.

Убедитесь, что установлен [rsync](/index.php/Rsync "Rsync") и сохраните скрипт в `~/bin/firefox-sync`, например:

 `firefox-sync` 
```
#!/bin/sh

static=*main*
link=*xyz.default*
volatile=*/dev/shm/firefox-$USER*

IFS=
set -efu

cd ~/.mozilla/firefox

if [ ! -r $volatile ]; then
	mkdir -m0700 $volatile
fi

if [ "$(readlink $link)" != "$volatile" ]; then
	mv $link $static
	ln -s $volatile $link
fi

if [ -e $link/.unpacked ]; then
	rsync -av --delete --exclude .unpacked ./$link/ ./$static/
else
	rsync -av ./$static/ ./$link/
	touch $link/.unpacked
fi

```

Закройте Firefox, сделайте скрипт выполняемым и протестируйте его:

```
$ killall firefox firefox-bin
$ chmod +x ~/bin/firefox-sync
$ ~/bin/firefox-sync

```

Запустите Firefox еще раз, чтобы оценить результаты. Во второй раз запустится скрипт, он сохранит профиль из RAM путем копирования его обратно на диск.

### Автоматизация

Заметив, что если вы забудите синхронизировать профиль, то это может привести к плохим последствиям. Так что будет логично автоматизировать действия.

#### Задание cron

Действуйте пользовательским [cron](/index.php/Cron_(%D0%A0%D1%83%D1%81%D1%81%D0%BA%D0%B8%D0%B9) "Cron (Русский)") используя таблицу `crontab`:

```
$ crontab -e

```

Добавьте строку, чтобы запускать сценарий каждые 30 минут,

```
*/30 * * * * *~/bin/firefox-sync*

```

или добавьте следующую, чтоб выполнять каждые 2 часа:

```
0 */2 * * * *~/bin/firefox-sync*

```

#### Синхронизация при входе/выходе

Используя [bash](/index.php/Bash_(%D0%A0%D1%83%D1%81%D1%81%D0%BA%D0%B8%D0%B9) "Bash (Русский)"), добавьте скрипты в файлы входа/выхода:

```
$ echo '*~/bin/firefox-sync*' | tee -a ~/.bash_logout ~/.bash_login >/dev/null

```

**Примечание:** Вы можете использовать `~/.bash_profile` вместо `~/.bash_login` т.к. bash будет читать только первый из них, если они оба существуют и могут быть прочитаны.

## Смотрите также

*   [tmpfs (Русский)](/index.php/Tmpfs_(%D0%A0%D1%83%D1%81%D1%81%D0%BA%D0%B8%D0%B9) "Tmpfs (Русский)")